home *** CD-ROM | disk | FTP | other *** search
/ Amiga News 96 / Amiga News 96.iso / amig_ad_os / amitex / arexx / conjugue.amitex < prev    next >
Text File  |  1997-02-06  |  3KB  |  112 lines

  1. /* Conjugaison d'un verbe avec Amitex  -   Version 1.02 - © R.Florac */
  2. /* Chez Corbin, 21 Juillet 1996, version 1.03 (waitforport, CM au lieu de SA) */
  3. /* Chez Corbin, 28 juillet 1996, version 1.04 (choix verbe si inconnu) */
  4. /* Chez Corbin, 18 Septembre 1996, version 1.05 (correction traitement result) */
  5.  
  6. port = ADDRESS()
  7.  
  8. cr = '0a'x
  9. address command
  10. if ~show(p, "CONJUGAREXX") then do
  11.     'run > nil:' "sys:c/conjuguer zip"     /* chargement du programme */
  12.     waitforport "CONJUGAREXX"
  13. end
  14.  
  15. address (port)
  16. options results
  17.  
  18. 'ASK("Infinitif du verbe"+CHR(10)+"à conjuguer")'
  19. if result="" then exit
  20. verbe=result
  21.  
  22. address CONJUGAREXX
  23. CONJUGUE verbe 1 1
  24. address (port)
  25. if rc ~= 0 then do
  26.     titre = verbe ":" mise_forme(rc,result)
  27.     if rc=4 then do
  28.     address CONJUGAREXX
  29.     LISTE verbe
  30.     verbes=result
  31.     address (port)
  32.     'SELECT("'titre||cr||verbes'")'     /* version 1.04 */
  33.     v = result
  34.     if v="RESULT" then exit             /* version 1.05 */
  35.     verbes=translate(verbes,' ',cr)
  36.     verbe = word(verbes,v)
  37.     end
  38. end
  39.  
  40. ttemps.1 = "Indicatif présent"
  41. ttemps.2 = "Indicatif imparfait"
  42. ttemps.3 = "Futur simple"
  43. ttemps.4 = "Passé simple"
  44. ttemps.5 = "Subjonctif présent"
  45. ttemps.6 = "Subjonctif de l'imparfait"
  46. ttemps.7 = "Conditionnel"
  47. ttemps.8 = "Participes"
  48. 'SELECT("Temps à conjuguer'cr'1- 'ttemps.1 cr'2- 'ttemps.2 cr'3- 'ttemps.3 cr'4- 'ttemps.4 cr'5- 'ttemps.5 cr'6- 'ttemps.6 cr'7- 'ttemps.7 cr'8- 'ttemps.8'")'
  49. temps = result
  50. if temps<1 | temps>8 then exit
  51.  
  52. conjvalid=0
  53. address CONJUGAREXX
  54. do personne=1 to 6
  55.     CONJUGUE verbe temps personne
  56.     if rc ~= 3 then conjvalid=1
  57.     if personne = 1 then do
  58.     l1 = left(result,1)                     /* lecture première lettre */
  59.     if l1='h' then l1 = substr(result,2,1)  /* lecture seconde lettre (traitement incomplet...) */
  60.     select
  61.         when (temps < 5 | temps = 7) then       /* indicatif */
  62.         do
  63.             if l1="a" | l1="e" | l1="i" | l1 = "o" | l1='é' | l1="u" then
  64.             p.1 = "J'"
  65.             else
  66.             p.1 = "Je "
  67.             p.2 = "Tu "
  68.             p.3 = "Elle "
  69.             p.4 = "Nous "
  70.             p.5 = "Vous "
  71.             p.6 = "Ils "
  72.         end
  73.         when (temps > 4 & temps < 7) then       /* subjonctif */
  74.         do
  75.             if l1="a" | l1="e" | l1="i" | l1 = "o" | l1='é' | l1="u" then
  76.             p.1 = "Que j'"
  77.             else
  78.             p.1 = "Que je "
  79.             p.2 = "Que tu "
  80.             p.3 = "Qu'il "
  81.             p.4 = "Que nous "
  82.             p.5 = "Que vous "
  83.             p.6 = "Qu'elles "
  84.         end
  85.         otherwise                    /* participes */
  86.         do
  87.             p.1 = "";       p.2 = "";       p.3 = ""
  88.             p.4 = "";       p.5 = "";       p.6 = ""
  89.         end
  90.     end
  91.     end
  92.     conjugaison.personne = mise_forme(rc,result)
  93. end
  94.  
  95. address (port)
  96. if conjvalid=1 then
  97.     'MESSAGE("Verbe 'verbe||cr||ttemps.temps||cr||conjugaison.1||cr||conjugaison.2||cr||conjugaison.3||cr||conjugaison.4||cr||conjugaison.5||cr||conjugaison.6'")'
  98.     else
  99.     'MESSAGE("Verbe 'verbe||cr||ttemps.temps||cr||conjugaison.1'")'
  100. exit
  101.  
  102. procedure mise_forme:
  103. parse arg rc,result
  104. select
  105.     when rc=0 then return p.personne""result
  106.     when rc=1 then return 'Mauvais arguments'
  107.     when rc=2 then return 'Commande inconnue'
  108.     when rc=3 then return 'Conjugaison inusitée'
  109.     when rc=4 then return 'Verbe inconnu'
  110. end
  111. return ""
  112.